/*
 * Stats.h
 *
 *  Created on: Oct 8, 2011
 *  Created by: Devin Manno
 *  Updated by: Devin Manno, Nick James
 *	Last Update: Oct 13, 2011
 */

/* General stats class for a monster, player, or weapon. 
 */

#ifndef STATS_H_
#define STATS_H_

class Stats {
private:
	int agility;		// affects character's ability to dodge attacks
	int strength;		// warrior's highest weighted attack damage stat
	int intelligence;	// wizard's highest weighted attack damage stat
	int concentration;	// ranger's highest weighted attack damage stat
	int maxActionPoints;	// max action points
	int maxHitPoints;	// max hit points

public:
	Stats();
	Stats(int agil, int str, int intel, int conc, int maxAP, int maxHP);
	void setStats(int agil, int str, int intel, int conc, int maxAP, int maxHP);
	virtual ~Stats();

	// getters
	int getAgility()const;
	int getStrength()const;
	int getIntelligence()const;
	int getConcentration()const;
	int getMaxActionPoints()const;
	int getMaxHitPoints()const;

	// setters
	void setAgility(int);
	void setStrength(int);
	void setIntelligence(int);
	void setConcentration(int);
	void setMaxHitPoints(int);
	void setMaxActionPoints(int);
	
	// operator overloading
	const Stats operator+(const Stats &other) const;		// for adding stats when items are equipped
	const Stats operator-(const Stats &other) const;		// for subtracting stats when items are dequipped

};

#endif /* STATS_H_ */
